package com.dhcc.springboot.test.controller;

import com.dhcc.springboot.test.bean.User;
import com.dhcc.springboot.test.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @program: test
 * @description: 主页面控制
 * @author: liu denghui
 * @create: 2019/08/13 13:46
 */
@Controller
public class IndexController {

    @Autowired
    UserService userService;

    /**
     * 主页
     * 可根据user信息查询
     * 返回listindex页面显示
     */
    @RequestMapping(value = "/toIndex")
    public String index(Model model, User user){
        List<User> userList = userService.queryByUser(user);
        model.addAttribute("user", user);
        model.addAttribute("userList", userList);
        return "index";
    }

    /**
     * 前往新增页面
     * 主页点击新增按钮时使用
     */
    @RequestMapping(value = "/toInsertNew")
    public String toInsert(){
        return "insertNew";
    }

    /**
     * 新增user信息
     * 新增页面点击确定时使用
     * 新增完返回主页
     */
    @RequestMapping(value = "/insert")
    public String insert(Model model,User newUser){
        userService.insert(newUser);
        return index(model, new User());
    }

    /**
     * 前往更新页面
     * 主页点击某一user信息更新按钮时使用
     */
    @RequestMapping(value = "/toUpdate")
    public String toUpdate(Model model, int id){
        User user = userService.selectByPrimaryKey(id);
        model.addAttribute("oldUser", user);
        return "update";
    }

    /**
     * 更新user信息
     * 更新页面点击确定时使用
     * 更新完数据返回主页
     */
    @RequestMapping(value = "/update")
    public String update(Model model, User newUser){
        userService.updateByPrimaryKey(newUser);
        return index(model, new User());
    }

    /**
     * 删除user信息
     * 主页点击某一user信息删除按钮时使用
     * 删除完数据返回主页
     */
    @RequestMapping(value = "/delete")
    public String delete(Model model, int id){
        userService.deleteByPrimaryKey(id);
        return index(model, new User());
    }
}
